package com.breeze.blockchain.common.config.id;

import com.breeze.components.redis.cluster.id.SnowIdUtil;
import com.mybatisflex.core.keygen.IKeyGenerator;
import lombok.extern.slf4j.Slf4j;

/**
 * @author breze
 */
@Slf4j
public class SnowIdGenerator implements IKeyGenerator {

  @Override
  public Object generate(Object entity, String keyColumn) {
    // 可以将当前传入的class全类名来作为bizKey,或者提取参数来生成bizKey进行分布式Id调用生成.
    String bizKey = entity.getClass().getSimpleName();
    // 根据bizKey调用分布式ID生成
    // 返回生成的id值即可
    return SnowIdUtil.getPut(CustomeUniqueIdEnum.valueOf(bizKey)).nextId();
  }
}
